/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import java.util.List;
import javax.ejb.Local;

/**
 *
 * @author Ing. Monica Merlo, Ing. Agustin  Fernandez
 */
@Local
public interface GestorConsultaObraLocal {
    
     /***
     * Retorna una lista con todas las instancias de Obra
     * @return una lista de todas las obras almacenadas en la Base de Datos
     * Interfaz local
     */
    public List consultarObra();

     /***
     * Retorna una lista con todas aquellas instancias de Obras que coincidan con los criterios de búsqueda
     * definidos por el usuario en la UI.
     * @param fechaInicio
     * @param fechaFin
     * @param departamento
     * @param empresa
     * @param programa
     * @param monto
     * @param obra
     * @param tipoObra
     * @param subtipoObra
     * @return una lista con todas aquellas obras que coincidan con los criterios de búsqueda definidos por el usuario en la UI,
     * y Null en caso contrario
     * Interfaz local
     */
    public java.util.List<datos.Obra> filtrarObrasPublicas(java.util.Date fechaInicio, java.util.Date fechaFin,
                                                           java.lang.String departamento, java.lang.String empresa,
                                                           java.lang.String programa, Float monto, String obra, 
                                                           java.lang.String tipoObra, java.lang.String subtipoObra);

     /***
     * Retorna una lista con todas aquellas instancias de Obras relacionadas con una Empresa en particular,
     * cuya razon social coincida con el parametro razonEmpresa.
     * @param razonEmpresa
     * @return una lista con todas aquellas obras relacionadas con una Empresa en particular, y null en caso contrario
     * Interfaz local
     */
    public java.util.List<datos.Obra> filtrarObrasPublicasPorEmpresa(java.lang.String razonEmpresa);

     /***
     * Retorna una lista con todas las instancias de Obra cuyos nombres coincidan
     * con el parametro nombre.
     * @param nombre
     * @return una lista con todas aquellas obras que coincidan con el nombre pasado como parámetro
     * y null en caso contrario
     * Interfaz local
     */
    public java.util.List<datos.Obra> filtrarObrasPublicasPorNombre(java.lang.String nombre);

    /**
     * Retorna una lista con todas aquellas instancias de Obra cuyos atributos coincidan con los
     * parametros codigo, nombre, tipoObra y localidad. Para ser utilizado en el dispositivo
     * móvil.
     * @param codigo
     * @param nombre
     * @param tipoObra
     * @param localidad
     * @return
     */
    public java.util.List<datos.Obra> filtarObrasJ2ME(java.lang.String codigo, java.lang.String nombre, java.lang.String tipoObra, java.lang.String localidad);

//    public void persist(java.lang.Object object);
    
}
